package mysql.v1;

import java.sql.*;

/*
* JDBC 可以完成CRUD操作【增加、修改、删除】
*      使用 JDBC  规范 查询操作
*      1，加载驱动：注册Mysql驱动
*      2.准备SQL: 链接成功Mysql服务器
*      3.发送SQL:执行查询操作
*      4.查询结构集：ResultSet  接口
*      5.处理结果集：显示查询数据
*      6.关闭资源
* */
public class MysqlJDBCV1 {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        //1.注册Mysql驱动----Java---Driver
        Class.forName("com.mysql.jdbc.Driver");
        //2.准备SQL  同时准备发送sql工具类
        String username = "root";
        String password = "";
        String url="jdbc:mysql://localhost:3309/mi?characterEncoding=UTF-8";
        //链接成功Mysql  sql  工具类---Java---DriverManager 接口
        //DriverManager 接口-->getConnection方法 传入三个参数
        //getConnection 方法链接成功--返回对象Connection对象
        //顺利打印Connection 对象：代表JDBC链接Mysql 成功
        Connection con=DriverManager.getConnection(url,username,password);
        //打桩：测试是否链接成功--成功打印对象
        System.out.println("测试Java链接数据库对象:"+con);

        //3.发送SQL:查询mi库--->book表
        String sql="select * from book";
        //通过链接成功Connection对象.createStatement()
        //createStatement()连接数据库，Statement对象
        //Statement对象--Java--连接数据库并且返回Statement对象
        Statement st =con.createStatement();
        //st.executeUpdate(sql)  增删改  操作 使用方法   返回int类型
        //                                            成功几条sql
        //st.executeQuery(sql)  查询  操作  使用方法     返回ResultSet
        //                                            查询结果集
        ResultSet rs =st.executeQuery(sql);
        //ResultSet 对象 --Java--查询到的数据保存对象
        //5.处理结果集：提示book表所有的记录数【数据】
        System.out.println("------查询book表结果如下----");
        //显示数据--book表哪些字段，类型必须知道
        //取【显示】7个字段，类型 mysql int[整型] varchar[字符串]
        //取【显示】7个字段，类型 Java int[整型] string[字符串]
        //ResultSet对象提供方法  next()  一次去除每个字字段记录【数据】
        //前提：不知道多少字段：依次数据 --while
        while(rs.next()){//取出每个【7个】字段记录【数据】
            //get类型（“字段名”）
            int id=rs.getInt("id");
            //getString("字段名")
            String author=rs.getString("author");
            rs.getString("name");
            int price=rs.getInt("price");
            String date=rs.getString("date");
            int number=rs.getInt("number");
            String discount=rs.getString("discount");
            //打桩：打印作者记录
            System.out.println("作者"+author+"打折情况"+discount);
        }


    }
}
